第3章 三角測量
『 #テスト駆動開発(書籍) 』
三角測量を真似て、コードを一般化できるのは、2つ以上の実例があるときだけ (Kindle の位置No.490)
設計のアイデアが浮かばないときの三角測量
一般化したコードを書ける時は三角測量せずに書いてよい
1つの実例ではそれをそのまま返す仮実装となる
オブジェクトを値として使うこともできる。今回使っているDollarオブジェクトもそうで、Value Objectパターンと呼ばれる。(Kindle の位置No.449-450)
30章にデザインパターン!!(Value Objectパターン(『テスト駆動開発』))
Value Objectには、コンストラクタで設定したインスタンス変数の値が変わってはならないという制約がある。(Kindle の位置No.450-451)
操作はすべて新しいオブジェクトを返さなければならない。また、Value Objectはequalsメソッドを実装しなければならない。(Kindle の位置No.462-463)
値として扱うは、2.2 値の性質と値オブジェクトの実装の説明がわかりやすかった(特に不変)
ValueObjectを使う大きなメリットは、別名参照(aliasing)を気にする必要がなくなることだ。(Kindle の位置No.451-452)
別名参照問題(『テスト駆動開発』3章)
(読書)テスト駆動開発で気づいた
Value Object: 一度つくられたら絶対に値が変わらないオブジェクトをつくって別名参照問題を防ぐ